package com.quartet.modules.vehicle.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.quartet.api.PageResult;
import com.quartet.modules.vehicle.dto.TVehicleInfoRequestDto;
import com.quartet.modules.vehicle.dto.TVehicleInfoResponseDto;
import com.quartet.modules.vehicle.dto.TVehicleInfoTotalRequestDto;
import com.quartet.modules.vehicle.dto.TVehicleInfoTotalResponseDto;
import com.quartet.modules.vehicle.entity.TVehicleInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 车辆摘要信息表(TVehicleInfo)表服务接口
 *
 * @author makejava
 * @since 2021-05-04 17:26:13
 */
public interface TVehicleInfoService extends IService<TVehicleInfo> {

    /**
     * 查询所有车辆数据
     * @param tVehicleInfoRequestDto
     * @return
     */
    PageResult<TVehicleInfoResponseDto> selectVehicleByCondition(TVehicleInfoRequestDto tVehicleInfoRequestDto);

    /**
     * 功能描述: 新增车辆相关信息
     * @author huipanxing huipanxing@chinasofti.com
     * @date 2021/5/13 16:06
     * @param tVehicleInfoTotalRequestDto
     * @param driverPhotoList
     * @return void
     */
    void addVehicleInfo(TVehicleInfoTotalRequestDto tVehicleInfoTotalRequestDto, List<MultipartFile> driverPhotoList);

    /**
     * 功能描述: 修改车辆相关信息
     * @author huipanxing huipanxing@chinasofti.com
     * @date 2021/5/13 16:06
     * @param tVehicleInfoTotalRequestDto
     * @return void
     */
    void updateVehicleInfo(TVehicleInfoTotalRequestDto tVehicleInfoTotalRequestDto);

    /**
     * 根据主键id删除车辆信息
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 通过主键查询单条数据
     * @param id
     * @return
     */
    TVehicleInfoTotalResponseDto selectVehicleInfoById(Integer id);
}
